package com.drg.center.mapper;

import com.drg.center.entity.DrgPatientCaseOutPO;
import com.drg.center.entity.param.*;
import com.drg.center.entity.result.*;
import com.guaike.core.mybatis.plugins.BaseExtMapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * 患者病例主表 Mapper 接口
 * </p>
 *
 * @author system
 * @since 2024-11-25
 */
public interface DrgPatientCaseOutExtMapper extends BaseExtMapper<DrgPatientCaseOutPO> {

    List<MedicalSettlePageVO> findPageList(@Param("start") Integer start, @Param("param") MedicalSettlePageDTO param);

    long findPageCount(@Param("param") MedicalSettlePageDTO param);

    List<CaseOutMonitorPageVO> findOutPageList(@Param("start") Integer start, @Param("param") CaseOutMonitorPageDTO param);

    long findOutPageCount(@Param("param") CaseOutMonitorPageDTO param);

    List<CaseProfitLossPageVO> caseProfitLossPageList(@Param("start") Integer start, @Param("param") CaseProfitLossDTO param);

    long caseProfitLossPageCount(@Param("param") CaseProfitLossDTO param);

    BigDecimal totalCost(@Param("drgCode") String drgCode);

    long totalCount(@Param("drgCode") String drgCode);

    BigDecimal avgCost(@Param("drgCode") String drgCode);

    BigDecimal avgInHospitalCost(@Param("drgCode") String drgCode);

    List<CaseMonitorOutCheckVO> checkDrgPage(@Param("start") Integer start, @Param("param") CaseCheckPageDTO param);

    long checkDrgPageCount(@Param("param") CaseCheckPageDTO param);

    List<KeyProjectsTotalStatPageVO> keyProjectsTotalStatPage(@Param("start") Integer start, @Param("param") KeyProjectsTotalStatExcelDTO param);

    long keyProjectsTotalStatPageCount(@Param("param") KeyProjectsTotalStatExcelDTO param);
}
